使用Jquery Toc的方法和步骤
· 阅读需 3 分钟
在长篇文章或复杂的网页内容中,目录(Table of Contents, TOC)可以极大地提升用户体验。本文将指导您如何在WordPress网站中实现一个自动生成的、具有粘性定位和交互效果的目录功能。
1. 引入jQuery TOC插件
首先,我们需要在WordPress中引入jQuery TOC插件。将以下代码添加到您的主题的functions.php文件中:
function enqueue_jquery_toc() {
wp_enqueue_script('jquery-toc', 'https://cdn.jsdelivr.net/npm/jquery.toc@0.4.0/jquery.toc.min.js', array('jquery'), '0.4.0', true);
wp_add_inline_script('jquery-toc', '
jQuery(document).ready(function($) {
$("#toc").toc({
content: ".entry-content",
headings: "h2,h3,h4,h5,h6"
});
});
');
}
add_action('wp_enqueue_scripts', 'enqueue_jquery_toc');
这段代码做了以下几件事:
- 从CDN加载jQuery TOC插件。
- 初始化TOC插件,指定生成目录的内容区域和要包含的标题级别。
提示
jQuery TOC非常轻量,只实现了呈现目录,没有任何样式,需要自己定制
2. 添加目录容器
在您希望显示目录的位置添加以下HTML代码:
<div id="toc"></div>
这个div将作为目录的容器。我添加到了侧边栏。
3. 设置TOC样式
为了使目录美观且易于使用,我们需要添加一些CSS样式。将以下CSS代码添加到您的主题的样式文件中:
#block-40 {
position: sticky;
top: 40px;
max-height: calc(100vh - 40px);
overflow-y: auto;
padding: 10px;
font-size: 0.9rem;
border-left: 1px solid #dddddd;
}
#toc {
margin: 0;
padding: 0;
list-style-type: none;
}
#toc li {
margin-bottom: 10px;
color: #333333;
}
#toc li li {
padding-left: 15px;
}
#toc li li li {
padding-left: 15px;
}
#toc li:last-child {
margin-bottom: 0;
}
#toc li a {
color: #525860;
}
#toc li a:hover {
color: #ff4500;
}
#toc a.active {
color: #ff4500;
}
这些样式将使目录具有粘性定位、可滚动、层级缩进,并添加了悬停和激活状态的样式。
4. 添加交互效果
最后,我们将添加一些JavaScript代码来增强目录的交互性。将以下代码添加到您的主题的JavaScript文件中:
jQuery(document).ready(function($) {
console.log('TOC script loaded');
$(document).on('click', '#toc a, #block-41 #toc a', function(e) {
console.log('TOC link clicked');
$('#toc a, #block-41 #toc a').removeClass('active');
console.log('Removed active class from all links');
$(this).addClass('active');
console.log('Added active class to:', this.href);
if ($(this).hasClass('active')) {
console.log('Active class successfully added');
} else {
console.log('Failed to add active class');
}
});
});
这段代码为目录项添加了点击事件,使当前选中的目录项高亮显示。
注意
本项目已经顺利成功。但是侧边栏不会滚动自定高亮。待解决
